﻿using YNTK.Common.Filter;
using YNTK.Message.Entitys.Model.IM;
using System.Collections.Generic;

namespace YNTK.Message.Interfaces.Message
{
    /// <summary>
    /// 聊天内容
    /// 版 本：V1.0.0
    /// 版 权：云南通科科技有限公司（https://www.yntkkj.com）
    /// 作 者：李仕鹏
    /// 日 期：2022-11-09
    /// </summary>
    public interface IIMContentService
    {
        /// <summary>
        /// 获取消息列表
        /// </summary>
        /// <param name="sendUserId">发送用户id</param>
        /// <param name="receiveUserId">接收用户id</param>
        /// <param name="input"></param>
        /// <returns></returns>
        dynamic GetMessageList(string sendUserId, string receiveUserId, PageInputBase input);

        /// <summary>
        /// 获取未读消息
        /// </summary>
        /// <param name="receiveUserId"></param>
        /// <returns></returns>
        List<IMUnreadNumModel> GetUnreadList(string receiveUserId);

        /// <summary>
        /// 获取未读消息
        /// </summary>
        /// <param name="receiveUserId">接收者</param>
        /// <returns></returns>
        int GetUnreadCount(string receiveUserId);

        /// <summary>
        /// 发送消息
        /// </summary>
        /// <param name="sendUserId">发送者</param>
        /// <param name="receiveUserId">接收者</param>
        /// <param name="message">消息内容</param>
        /// <param name="messageType">消息类型</param>
        /// <returns></returns>
        int SendMessage(string sendUserId, string receiveUserId, string message, string messageType);

        /// <summary>
        /// 已读消息
        /// </summary>
        /// <param name="sendUserId">发送者</param>
        /// <param name="receiveUserId">接收者</param>
        int ReadMessage(string sendUserId, string receiveUserId);
    }
}
